import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
// import app from './modules/app'
// console.log(app, 'app')
// import settings from './modules/settings'
// import user from './modules/user'

Vue.use(Vuex)

//  require.context('指定需要导入文件的路径'，'是否递归获取','正则匹配需要加载的文件类型')
const req = require.context('./modules', false, /\.js$/)
console.log(req, 'req')
console.log(req.keys(), 'req.keys()')
// 获取文件名，返回的是数组
const mName = req.keys().map(item => item.split('./')[1]).map(item => item.split('.js')[0])
console.log(mName, 'mName')
console.log(req.keys().map(req), 'map')
// 获取模块对象，返回的是数组
const mModule = req.keys().map(req)

const obj = {}
// 遍历模块对象，获取文件名作为key,值是对应的模块对象，拼接成key:value的对象
mName.forEach((item, index) => {
  console.log(item, index)
  obj[item] = mModule[index].default
})
console.log(obj, 'obj')

// 总仓库
const store = new Vuex.Store({
  // 在modules中使用obj进行批量注册
  modules: obj,
  getters
})

export default store
